With the rapid developments occurring within the computer software industry/data content industry, the competition among companies is becoming increasingly more intense. The capabilities, associated with the software product/data content, play a paramount role in the success of the software product/data content within the industry. And, the capability of having the software product/data content be compatible within cross-computing environments in cross-language is a critical feature for any software product/data content to achieve in today's heterogeneous computing environment and unified world. This is especially true with the omnipresence of the Internet, where the access to software products/data content is pervasive.
The ability to operate on a cross-computing environment permits a software product to be delivered onto disparate and heterogeneous computing environments where multiple computing devices with disparate platforms (e.g., operating systems) work seamlessly on a single version of the software product. Moreover, the ability to deliver data content in cross-languages provides an international market for the data content.
Accordingly, a single software product operating with singular data content can capture and reach a prodigious market within the industry and can determine the difference between success or failure. Further, many software products are sold internationally. Readying a product for release in another country typically requires modifying the user interface associated with the software product and producing duplicated data content, which is used or provided by the software product, since typically a software product is designed for use in a country in which one particular host language is predominately used and often that host language will be unsuitable for use in another country in which another language is predominately used.
The process of modifying a software product for use in different countries is referred to as “localization.” Since software products are frequently released in many different countries, the modifications to the software product, which are necessary to localize the product for the various countries, can be expensive. The process of facilitating or streamlining localization is referred to as “internationalization.” A major problem with internationalization is allowing the data content to be displayed to the user separate from the source code so that it could be easily translated into the appropriate language with certain locale, dialect or profession. Typically, this means that the software product cannot use hard coded messages or static data tables and must instead read in a set of data messages at runtime, based on the locale setting. Good internationalization techniques will facilitate localization greatly.
Unfortunately existing internationalization software development tools and packages are not capable of efficient operation on cross-computing environments making the production of an international software product even more difficult to achieve, since many international users, like national users, have disparate computing environments.
For each computing environment to achieve an international software product, a particular version of message files describing the content data from a host language to a desired language is required. Additionally, the use of a particular set of internationalization software development tools and packages is required to process and handle the message files. Although the existing techniques of providing multiple versions of message files, multiple versions of tools, and multiple versions of packages can provide software products/data content, which are internationalized, the prevailing techniques have some obvious shortcomings associated with software development expense, software development support, software development maintenance, and processing capacity.
With respect to software development shortcomings, separate message files have to be created, synchronized, and subsequently maintained for all disparate computing environments supported and languages supported. Furthermore, existing techniques require software developers to use different message tools and packages to process the message files as messages are processed for each of the different computing environments. For example, different message file loading and message retrieving routines from packages (e.g., such as what is provided by the Internationalization (I18N) and Localization (L10N) Committee for the World-Wide Web Consortium (W3C)) are required to effectively use the message files in many software products.
Additionally with respect to the processing capacity problems, the existing internationalization techniques don't provide a convenient way to handle multiple message files concurrently. This capacity will be essential to an Internet server, as the Internet is getting increasingly internationalized. In the near future we will have more and more Internet servers servicing web browsers worldwide. Without the concurrent accessibility of multiple message files in different languages, it will be very difficult to develop an international Internet server.
As is apparent, there exists a need for providing a single message file to facilitate the translation of content data from a single host language to a desired language, irrespective of the local computing environment in which the desired language is provided. Further, there exists a need for providing a single set of software development tools and packages, such that internationalization and localization are achieved cross-computing environments. And finally, there exists a need for providing a convenient way to handle multiple message files concurrently.